﻿window.SearchKey = null;
$.MGJ.RoleManage = [];

(function () {
    var _this = $.MGJ.RoleManage;
    $.extend($.MGJ.RoleManage, {
        ExportE: function (ele) {
            $("input.AllClickChild:checked").each(function () {
                info.push($(this).attr('ID'));
            });
            if (info.length == 0) {
                $.L.msgError("请选择要导出的数据信息！");
                return
            }
            if (!$(ele).find('.no-result').hasClass('no-result')) {
                window.open(ACTION_URL("ExportE", "Manager") + "?Key=" + info);
            }
            else {
                $.L.msgWarning('导出数据不能为空！')
            } 
        },
        bind_Delete: function () {
            alert(66);

        }
    });
})(jQuery);

(function () {
    var _this = $.MGJ.RoleManage;
    $.extend($.MGJ.RoleManage, {
        // 新增用户
        Dialog_AddRoleObj: null,
        Dialog_AddRole: function () {
            this.Dialog_AddRoleObj = $.L.dialog({
                url: ACTION_URL("AddRole", "Manager"),
                title: "新增角色",
                width: 800,
                height: 'auto',
                buttons: {
                    "button_save": {
                        type: 'primary',
                        text: '保存',
                        click: function () {
                            $(".btn-primary").attr("disabled", true);
                            var bootstrapValidator = $("#form_AddRole").data('bootstrapValidator').validate();//触发全部验证
                            if (bootstrapValidator.isValid()) {
                                $.MGJ.RoleManage.Ajax_AddRoleInfo();

                            }
                            else {
                                $.L.msgError("请检查数据格式！");
                                $(".btn-primary").attr("disabled", false);
                            };
                        }
                    },
                    "button_cancel": {
                        type: 'default',
                        text: '取消',
                        click: 'MODALMISS'
                    }
                }
            });
        },

        Dialog_EditRoleObj: null,
        Dialog_EditRole: function (obj) {
            var id = $(obj).attr("RoleID");

            this.Dialog_EditRoleObj = $.L.dialog({
                url: ACTION_URL("EditRole", "Manager") + "?id=" + id,
                title: "编辑角色",
                width: 800,
                height: 'auto',
                buttons: {
                    "button_save": {
                        type: 'primary',
                        text: '保存',
                        click: function () {
                            $(".btn-primary").attr("disabled", true);
                            var bootstrapValidator = $("#form_EditRole").data('bootstrapValidator').validate();//触发全部验证
                            if (bootstrapValidator.isValid()) {
                                $.MGJ.RoleManage.Ajax_UpdateRoleInfo(id);
                            }
                            else {
                                $.L.msgError("请检查数据格式！");
                                $(".btn-primary").attr("disabled", false);
                            };
                        }
                    },
                    "button_cancel": {
                        type: 'default',
                        text: '取消',
                        click: 'MODALMISS'
                    }
                }
            });

        },
        Dialog_ConfigCompetenceObj: null,
        Dialog_ConfigCompetence: function (obj) {
  
            var id = $(obj).attr("RoleID");
            var type = $(obj).attr("Type");
            this.Dialog_ConfigCompetenceObj = $.L.dialog({
                url: ACTION_URL("ConfigCompetence", "Manager") + "?id=" + id + "&type=" + type,
                title: "配置权限",
                width: 800,
                height: 420,
                buttons: {
                    "button_save": {
                        type: 'primary',
                        text: '保存',
                        click: function () {
                    
                            var jsonData = "[";
                            //循环菜单复选框
                            $("#gridTreeDiv input[name='menu']:checked").each(function () {
                                //判断是否是父级
                                if ($(this).attr("isParent") == 0) {
                                    jsonData += "{'MenuID':" + $(this).val() + ",'IsAdd':" + 0 + ",'IsDel':" + 0 + ",'IsUpd':" + 0 + "},";
                                }
                                else {
                                    var id = "gridTreeTrid20";
                                    if ($(this).parent().parent().attr("id") == id) {
                                        
                                        var IsAdd = $(this).parent().parent().find("input[name='IsAdd']").is(':checked') ? 1 : 0;
                                        var IsDel = $(this).parent().parent().find("input[name='IsDel']").is(':checked') ? 1 : 0;
                                        var IsUpd = $(this).parent().parent().find("input[name='IsUpd']").is(':checked') ? 1 : 0;
                                        var nodeConfig = $(this).parent().parent().find("input[name='NodeConfig']").is(':checked') ? 1 : 0;
                                        var nodeAdd = $(this).parent().parent().find("input[name='NodeAdd']").is(':checked') ? 1 : 0;
                                        jsonData += "{'MenuID':" + $(this).val() + ",'IsAdd':" + IsAdd + ",'IsDel':" + IsDel + ",'IsUpd':" + IsUpd + ",'Extension1':" + nodeConfig + ",'Extension2':" + nodeAdd + "},";
                                    } else {
                                        var IsAdd = $(this).parent().parent().find("input[name='IsAdd']").is(':checked') ? 1 : 0;
                                        var IsDel = $(this).parent().parent().find("input[name='IsDel']").is(':checked') ? 1 : 0;
                                        var IsUpd = $(this).parent().parent().find("input[name='IsUpd']").is(':checked') ? 1 : 0;
                                        jsonData += "{'MenuID':" + $(this).val() + ",'IsAdd':" + IsAdd + ",'IsDel':" + IsDel + ",'IsUpd':" + IsUpd + "},";
                                    }
                                }
                            });
                            jsonData = jsonData.substring(0, jsonData.toString().length - 1) + "]";
                            $.MGJ.RoleManage.Ajax_UpdateRoleMenuInfo(id, jsonData);
                        }
                    },
                    "button_cancel": {
                        type: 'default',
                        text: '取消',
                        click: 'MODALMISS'
                    }
                }
            });

        },
    });
})(jQuery);

(function () {
    var _index = 1;
    var _this = $.MGJ.RoleManage;
    $.extend($.MGJ.RoleManage, {
        //查询角色信息
        Ajax_GetRoleInfo: function (pageIndex) {
            _index = pageIndex;
            window.SearchKey = removeSpace($("#RoleName").val());
            $.L.ajaxHandle({
                url: ACTION_URL("GetRoleInfo", "Manager") + "?pageindex=" + pageIndex,
                data: $("#SearchForm").serialize(),
                success: function (response) {
                    $("#RoleInfo").L_bindingDataList(response);
                    $(".RoleType").each(function () {
                        if ($(this).text() == "1") {
                            $(this).text("企业自定义")
                        } else {
                            $(this).text("系统预定义")
                        }
                    })
                    $('.EDRoleType').each(function () {
                        if ($(this).attr('Type') == 0) {
                            $(this).removeAttr('onclick').css('color', '#C6C7C7');
                        }
                    })
                    $('.changeText').each(function () {
                        if ($(this).attr('changetext') != 1 && $(this).attr('Type') == 0) {
                            $(this).text('查看权限');
                        }
                    })
                }
            });
        },
        //新增角色
        Ajax_AddRoleInfo: function () {
            $.L.ajaxHandle({
                url: ACTION_URL("AddRoleInfo", "Manager"),
                data: $("#form_AddRole").serialize(),
                success: function (response) {
                    _this.Dialog_AddRoleObj.close();
                    if (response > 0) {
                        _this.Ajax_GetRoleInfo(1);
                        $.L.msgSuccess("操作成功");
                    }
                    else {
                        $.L.msgSuccess("操作失败");
                    }
                    $(".btn-primary").attr("disabled", false);
                }
            });
        },
        //删除角色
        Ajax_DeleteRoleInfo: function (obj) {
            $.L.msgConfirm("确认删除该记录?", function () {

                var id = $(obj).attr("RoleID");
                $.L.ajaxHandle({
                    url: ACTION_URL("DeleteRoleInfo", "Manager"),
                    data: {
                        id: id
                    },
                    success: function (response) {
                        if (response > 0) {
                            _this.Ajax_GetRoleInfo(_index);
                            $.L.msgSuccess("操作成功");
                        }
                        else {
                            $.L.msgSuccess("操作失败");
                        }
                    }
                });

            })

        },
        //编辑角色
        Ajax_UpdateRoleInfo: function (id) {
            $.L.ajaxHandle({
                url: ACTION_URL("UpdateRoleInfo", "Manager"),
                data: $("#form_EditRole").serialize(),
                success: function (response) {
                    _this.Dialog_EditRoleObj.close();
                    if (response > 0) {
                        _this.Ajax_GetRoleInfo(1);
                        $.L.msgSuccess("操作成功");
                    }
                    else {
                        $.L.msgSuccess("操作失败");
                    }
                    $(".btn-primary").attr("disabled", false);
                }
            });
        }, Ajax_UpdateRoleMenuInfo: function (id, jsonData) {
            $.L.ajaxHandle({
                url: ACTION_URL("UpdateRoleMenuInfo", "Manager"),
                data: { id: id, jsonData: jsonData },
                success: function (response) {
                    _this.Dialog_ConfigCompetenceObj.close();
                    if (response > 0) {
                        _this.Ajax_GetRoleInfo(1);
                        $.L.msgSuccess("操作成功");
                    }
                    else {
                        $.L.msgSuccess("操作失败");
                    }
                }
            });
        }


    });
})(jQuery);

//权限负责
(function () {
    var _this = $.MGJ.RoleManage;
    $.extend($.MGJ.RoleManage, {
        
        //获取菜单
        Ajax_GetTableTree: function (id, type, UserId) {
            
            $.L.ajaxHandle({
                url: ACTION_URL("GetTableTree", "Manager") + "?id=" + id,
                success: function (data) {
                    //console.log(data)
                    gridTree = new TableTree4J("gridTree", "../");
                    gridTree.tableDesc = "<table border=\"1\" class=\"GridView table table-bordered \" width=\"100%\" id=\"table1\" cellspacing=\"0\" cellpadding=\"0\" style=\"border-collapse: collapse\"  bordercolordark=\"#C0C0C0\" bordercolorlight=\"#C0C0C0\" >";
                    var headerDataList = new Array("菜单名", "操作");
                    var widthList = new Array("20%", "30%", "10%", "30%");
                    gridTree.setHeader(headerDataList, -1, widthList, true, "tittle-bg");
                    //设置列样式
                    gridTree.gridHeaderColStyleArray = new Array("", "", "", "centerClo");
                    gridTree.gridDataCloStyleArray = new Array("", "", "", "centerClo");
                    $("#sel_parent_meun").html("<option value='0'>无</option>");
                    $(data).each(function (i, d) {
                        var oper = "";
                        var MenuName = "";

                        //产品管理ID=3
                        //产品分类ID=18
                        //产品列表ID=19
                        //产品批次ID=20
                        if (d.ID == 20) {
                            oper = ' <div  class="col-xs-4 col-md-4" title="添加" ><input type="checkbox" value="1" singal=0 name="IsAdd" menuid="' + d.ID + '" group="' + d.ParentId + '" level="btn" /><span> 添加</span > </div >' +
       ' <div class="col-xs-4 col-md-4" title="删除"><input type="checkbox"  value="1" singal=0 name="IsDel" group="' + d.ParentId + '" menuid="' + d.ID + '" level="btn" /> <span>删除</span> </div>' +
       ' <div class="col-xs-4 col-md-4" title="修改"> <input type="checkbox" value="1" singal=0 name="IsUpd" group="' + d.ParentId + '" menuid="' + d.ID + '" level="btn"  /><span>修改</span> </div> ' +
           ' <div class="col-xs-4 col-md-4" title="溯源节点配置"> <input type="checkbox" value="1" singal=0 name="NodeConfig" group="' + d.ParentId + '" menuid="' + d.ID + '" level="btn"  /><span>溯源节点配置</span> </div> ' +
               ' <div class="col-xs-4 col-md-4" title="溯源节点添加"> <input type="checkbox" value="1" singal=0 name="NodeAdd" group="' + d.ParentId + '" menuid="' + d.ID + '" level="btn"  /><span>溯源节点添加</span> </div> ';
                            MenuName += d.MenuName + '&nbsp;<input type="checkbox" belong=1 name="menu"   value="' + d.ID + '" group="' + d.ParentId + '" isParent="' + d.isParent + '"  />';
                        }



                            //不是父级
                        else if (d.isParent != 0) {
                            oper = ' <div  class="col-xs-4 col-md-4" title="添加" ><input type="checkbox" value="1" singal=0 name="IsAdd" menuid="' + d.ID + '" group="' + d.ParentId + '" level="btn" /><span> 添加</span > </div >' +
                                   ' <div class="col-xs-4 col-md-4" title="删除"><input type="checkbox"  value="1" singal=0 name="IsDel" group="' + d.ParentId + '" menuid="' + d.ID + '" level="btn" /> <span>删除</span> </div>' +
                                   ' <div class="col-xs-4 col-md-4" title="修改"> <input type="checkbox" value="1" singal=0 name="IsUpd" group="' + d.ParentId + '" menuid="' + d.ID + '" level="btn"  /><span>修改</span> </div> ';
                            MenuName += d.MenuName + '&nbsp;<input type="checkbox" belong=1 name="menu"   value="' + d.ID + '" group="' + d.ParentId + '" isParent="' + d.isParent + '"  />';
                        }
                        else {
                            MenuName += d.MenuName + '&nbsp;<input type="checkbox" name="menu" belong=0  value="' + d.ID + '" group="' + d.ID + '" isParent="' + d.isParent + '"  />';
                        }

                        var dataList = new Array(MenuName, oper);

                        //1：对象，2：编号，3：父节点 默认为0，null，5:顺序
                        gridTree.addGirdNode(dataList, d.ID, d.ParentId == 0 ? -1 : d.ParentId, null, d.Sequence);
                        //$("#sel_parent_meun").append("<option value='" + d.ID + "'>" + d.MenuName + "</option>");
                    });
                    gridTree.printTableTreeToElement("gridTreeDiv");
                    if (UserId != '1') {//1 admin
                        if (type == '0') {//0系统定义 1企业自定义
                            $('#gridTreeDiv input[type="checkbox"]').prop({ 'checked': false, 'disabled': 'disabled' });
                            return;
                        }
                    }
                    //else {
                    //    if (type == '0') {//0系统定义 1企业自定义
                    //        $('#gridTreeDiv input[type="checkbox"]').prop({ 'checked': true, 'disabled': 'disabled' });
                    //        return;
                    //    }

                    //}
               





                    $('#gridTreeDiv').on('change', 'input[name="menu"]', function () {
                        var group = $(this).attr('group');
                        if ($(this).attr('belong') === '0') {
                            if ($(this).is(':checked')) {
                                if ($(this).parent().text().indexOf('码管理') > -1) {
                                    $(this).parent().parent().nextAll().children().find('input[group="' + group + '"]').prop('checked', true);
                                    $(this).parent().parent().next().find('input[type="checkbox"]').prop({ 'disabled': 'disabled', 'checked': false });
                                }
                                else {
                                    $(this).parent().parent().nextAll().children().find('input[group="' + group + '"]').prop('checked', true);
                                }
                            }
                            else {
                                if ($(this).parent().text().indexOf('码管理') > -1) {
                                    $(this).parent().parent().nextAll().children().find('input[group="' + group + '"]').prop('checked', false);
                                    $(this).parent().parent().next().find('input[type="checkbox"]').prop({ 'disabled': 'disabled', 'checked': false });
                                }
                                else {
                                    $(this).parent().parent().nextAll().children().find('input[group="' + group + '"]').prop('checked', false);
                                }
                            }

                        }
                        else {
                            if ($(this).is(':checked')) {
                                $(this).parent().next().find('input[type="checkbox"]').prop('checked', true);
                                $(this).parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', true);
                            }
                            else {
                                $(this).parent().next().find('input[type="checkbox"]').prop('checked', false);
                                if ($(this).parent().parent().siblings().find('input[belong=1][group="' + group + '"]').is(':checked')) {
                                    $(this).parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', true);
                                }
                                else {
                                    $(this).parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', false);
                                }
                            }
                            return false;
                        }

                    });

                    $('#gridTreeDiv').on('change', 'input[singal=0]', function () {
                        var group = $(this).attr('group');
                        //$(this).parent().parent().parent().prevAll().find('input[group="' + group + '"]').prop('checked', true);
                        //$(this).parent().parent().prev().find('input').prop('checked', true);
                        //同类
                        if ($(this).parent().siblings().find('input').is(':checked')) {
                            $(this).parent().parent().prev().find('input').prop('checked', true);
                        }
                        else {
                            $(this).parent().parent().prev().find('input').prop('checked', false);
                            $(this).parent().parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', false);
                        }


                        //自己
                        if ($(this).is(':checked')) {
                            $(this).parent().parent().prev().find('input').prop('checked', true);
                            $(this).parent().parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', true);
                        }
                        else {
                            if ($(this).parent().siblings().find('input').is(':checked')) {
                                $(this).parent().parent().prev().find('input').prop('checked', true);
                                $(this).parent().parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', true);
                            }
                            else {
                                $(this).parent().parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', false);
                            }

                            if ($(this).parent().parent().parent().siblings().find('input[group="' + group + '"][belong=1]').is(':checked') || $(this).parent().parent().prev().find('input[group="' + group + '"][belong=1]').is(':checked')) {
                                $(this).parent().parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', true);
                            }
                            else {
                                $(this).parent().parent().parent().prevAll().find('input[group="' + group + '"][belong=0]').prop('checked', false);
                            }
                        }


                    });

                }
            });
        },
        //获取勾选了角色的菜单
        Ajax_GetRoleTree: function (rid) {

            $.L.ajaxHandle({
                url: ACTION_URL("GetRoleTree", "Manager") + "?rid=" + rid,
                success: function (data) {
                  
                    //$(data).each(function (i, e) {
                    //    if (e.MenuID = 20) {
                    //        if (e.Extension1 == 1) {
                    //            $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='NodeConfig']").prop("checked", "checked");
                    //        }
                    //        if (e.Extension2 == 1) {
                    //            $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='NodeAdd']").prop("checked", "checked");
                    //        }
                    //    }
                    //    $("#gridTreeDiv input[value='" + e.MenuID + "']").prop("checked", "checked");
                    //    $("#gridTreeDiv input[value='" + e.MenuID + "'][level='btn']").removeAttr("checked");

                    //    if (e.IsAdd == 1) {
                    //        $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='IsAdd']").prop("checked", "checked");
                    //    }
                    //    if (e.IsDel == 1) {
                    //        $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='IsDel']").prop("checked", "checked");
                    //    }
                    //    if (e.IsUpd == 1) {
                    //        $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='IsUpd']").prop("checked", "checked");
                    //    }
                    //})








                    $(data).each(function (i, e) {
                        $("#gridTreeDiv input[value='" + e.MenuID + "']").prop("checked", "checked");
                        $("#gridTreeDiv input[value='" + e.MenuID + "'][level='btn']").removeAttr("checked");

                        if (e.IsAdd == 1) {
                            $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='IsAdd']").prop("checked", "checked");
                        }
                        if (e.IsDel == 1) {
                            $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='IsDel']").prop("checked", "checked");
                        }
                        if (e.IsUpd == 1) {
                            $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='IsUpd']").prop("checked", "checked");
                        }

                            if (e.MenuID == 20) {
                                if (e.Extension1 == 1) {
                                    $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='NodeConfig']").prop("checked", "checked");
                                }
                                if (e.Extension2 == 1) {
                                    $("#gridTreeDiv input[menuid='" + e.MenuID + "'][name='NodeAdd']").prop("checked", "checked");
                                }
                            }



                    })
                }
            });
        }
    });
})(jQuery);
